Local Verification of Global Invariants in Concurrent Programs
نویسندگان
چکیده
We describe a practical method for reasoning about realistic concurrent programs. Our method allows global two-state invariants that restrict update of shared state. We provide simple, sufficient conditions for checking those global invariants modularly. The method has been implemented in VCC, an automatic, sound, modular verifier for concurrent C programs. VCC has been used to verify functional correctness of tens of thousands of lines of Microsoft’s Hyper-V virtualization platform and of SYSGO’s embedded real-time operating system PikeOS.
منابع مشابه
Efficiently Inferring Thread Correlations
We present a new analysis for proving properties of finegrained concurrent programs with a shared, mutable, heap in the presence of an unbounded number of objects and threads. The properties we address include memory safety, data structure invariants, partial correctness, and linearizability. Our techniques enable successful verification of programs that were not be handled by previous concurre...
متن کاملVerification of Multithreaded Object-Oriented Programs with Invariants
Developing safe multithreaded software systems is difficult due to the potential unwanted interference among concurrent threads. This paper presents a sound, modular, and simple verification technique for multithreaded object-oriented programs with object invariants. Based on a recent methodology for object invariants in single-threaded programs, this new verification technique enables leak-pro...
متن کاملAbstract Transformers for Thread Correlation Analysis
Transformers for Thread Correlation Analysis M. Segalov, T. Lev-Ami, R. Manevich, G. Ramalingam, and M. Sagiv 1 Tel Aviv University, {tla,segalovm,msagiv}@post.tau.ac.il 2 University of California Los Angeles, [email protected] 3 Microsoft Research India, [email protected] Abstract. We present a new technique for speeding up static analysis of (shared memory) concurrent programs. We focus on ...
متن کاملHistory-Based Verification of Functional Behaviour of Concurrent Programs
We extend permission-based separation logic with a historybased mechanism to simplify the verification of functional properties in concurrent programs. This allows one to specify the local behaviour of a method intuitively in terms of actions added to a local history; local histories can be combined into global histories, and by resolving the global histories, the reachable state properties can...
متن کاملThread Quantification for Concurrent Shape Analysis
We present new algorithms for automatically verifying properties of programs with an unbounded number of threads. Our algorithms are based on a new abstract domain whose elements represent thread-quantified invariants: i.e., invariants satified by all threads. We exploit existing abstractions to represent the invariants. Thus, our technique lifts existing abstractions by wrapping universal quan...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010